Scalable system and method for weighted similarity estimation in massive datasets revealed in a streaming fashion

ABSTRACT

A method is used to data mine input vectors. A data source receives input vectors. A sketch feature generator converts the input vectors into corresponding sketch feature vectors, where each sketch feature vectors has a number of dimensions that is less than a number of dimensions of the corresponding input vector. A similarity comparator compares each sketch feature vectors against a set of parameters. A decision loop determines results of similarities based upon comparison of each sketch feature vectors against the set of parameters.

CROSS-REFERENCE TO PRIOR APPLICATION

Priority is claimed to U.S. Provisional Patent Application Ser. No. 62/109,694, filed on Jan. 30, 2015, the entire disclosure of which is hereby incorporated by reference herein.

FIELD

The present invention relates to a scalable system and method for weighted similarity estimation in massive datasets revealed in a streaming fashion.

BACKGROUND

Detecting similar objects is a core component in numerous computer science applications. Concrete examples include, but are not limited to, the detection of similar documents in large corpora for plagiarism detection, clustering similar emails according to keywords for spam detection, detecting defective genes that appear to contribute as combinations to certain diseases, collaborative filtering in recommender systems where users are grouped according to similar interests, etc.

There are different similarity measure definitions that have been applied. See <<http://reference.wolfram.com/language/guide/DistanceAndSimilarityMeasures.html>> (accessed Jan. 29, 2015) for an overview. Some of the similarity measure definitions like Hamming distance, Jaccard similarity, Dice similarity, etc, assume binary data as input. For many problems however, this assumption is not justified and one needs to handle weighted features. Arguably, the three most widely used similarity measures for weighted data are Euclidean distance, cosine similarity and Pearson correlation.

For certain applications like recommender systems and genetic data mining, the established similarity measures are cosine similarity and Pearson correlation. See Michael D. Ekstrand, John T. Riedl and Joseph A Konstan, Collaborative Filtering Recommender Systems, Foundations and Trends in Human-Computer Interaction, Vol. 4, No. 2 (2010) as an example.

Formally, cosine between two objects x and y is defined as

${\cos \left( {x,y} \right)} = \frac{\sum\limits_{i = 1}^{n}{x_{i}y_{i}}}{{x}{y}}$

where x_(i) denotes the i-th feature of object x and ∥x∥=√{square root over (Σ_(l=1) ^(n)x_(l) ²)} is the 2-norm of the vector a.

Pearson correlation is defined as

${\rho \left( {x,y} \right)} = \frac{\sum\limits_{i = 1}^{n}{\left( {x_{i} - \overset{\sim}{x}} \right)\left( {y_{i} - \overset{\sim}{y}} \right)}}{{\overset{\_}{x}}{\overset{\_}{y}}}$

where x^(x)=(Σ_(i=1) ^(n)x_(i))/n and ∥x∥=√{square root over (Σ_(l=1) ^(n)(x_(l)−x)²)}

The problem to compute the similarity between two objects by the above definitions is trivial if it is possible to store the objects in main memory. However, for massive datasets with high-dimensional objects, it is often the case that it is not possible to store all of the objects in main memory. Therefore, one aims to efficiently compute compact sketches or summaries of the objects that will lead to considerable space savings.

In the following, it is assumed that objects are described by vectors and the terms object and vector are used interchangeably. It is also assumed that an input vector is provided as a stream of (index, value) pairs with no particular order.

Previous approaches for similarity estimation include min-wise independent permutations (see Andrei Z. Broder, Moses Charikar, Alan M. Frieze, Michael Mitzenmacher, Min-Wise Independent Permutations (1998)) for Jaccard similarity and a random hyperplane algorithm (see Moses Charikar, Similarity Estimation Techniques from Rounding Algorithms (2002)) for the estimation of the angle between vectors revealed in a streaming fashion. The former applies only to binary data, and the latter suffers from higher processing time per element which makes it impractical for high speed data streams. Count-Sketch has also been applied to inner product estimation (see Graham Cormode, Minos Garofalakis, Sketching Streams Through the Net: Distributed Approximate Query Tracking, VLDB (2005), pp. 13-24) which is closely related cosine similarity estimation. Count-Sketch is also described in Moses Charikar, Kevin Chen, Martin Farach-Colton, Finding Frequent Items in Data Streams, Theor. Comput. Sci. 312(1) 3-15 (2004). To the best of the inventors' knowledge, no sketching technique has been proposed to Pearson correlation estimation.

SUMMARY

In an embodiment, the present invention provides a method for data mining. A data source receives input vectors. A sketch feature generator converts the input vectors into corresponding sketch feature vectors, where each sketch feature vectors has a number of dimensions that is less than a number of dimensions of a corresponding one of the input vectors. A similarity comparator compares each sketch feature vectors against a set of parameters. A decision loop determines results of similarities based upon comparison of each of the sketch feature vectors against the set of parameters.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described in even greater detail below based on the exemplary figures. The invention is not limited to the exemplary embodiments. All features described and/or illustrated herein can be used alone or combined in different combinations in embodiments of the invention. The features and advantages of various embodiments of the present invention will become apparent by reading the following detailed description with reference to the attached drawings which illustrate the following:

FIG. 1 shows the overall structure of a sketching algorithm according to an embodiment of the present invention.

FIG. 2 shows an example of updating a hash table according to an embodiment of the present invention.

FIG. 3 schematically shows a system for similarity estimation according to an embodiment of the present invention.

DETAILED DESCRIPTION

Aspects of the present invention provide a new system and method for sketching the input vectors revealed in a high-speed streaming fashion. The system according to an embodiment, compared to current state-of-the-art systems, provides significantly improved data processing, reducing significantly the processing time required per element, stores a compact representation of the input vectors and also estimates the 2-norm of each vector. Furthermore, significant space savings of 80% or more can also be advantageously achieved. Moreover, the accuracy of the results of the estimations are significantly improved as compared to the state-of-the-art, which have a number of disadvantages.

In an embodiment of the present invention, Count-Sketches are combined in a novel manner for the estimation of both the inner product of two vectors and the 2-norm of a vector. Having these three estimates makes it possible to compute an estimation of cosine similarity. In the following, it is first described how the system works for cosine similarity estimation and then described how the system is extended, in an embodiment, to Pearson correlation estimation.

FIG. 1 shows the overall structure of a sketching algorithm according to an embodiment of the present invention. In a sketch generator 100, a plurality of n-dimension vectors (X, Y, Z, U) are received as input 110, and a plurality of k-dimension vectors (s(X), s(Y), s(Z), s(U)) are generated as output sketches 120 by the sketch generator 100 applying sketching algorithm.

For cosine similarity, a single hash table H_(x) is provided for each vector x. In each hash table H_(x) up to k entries can be stored. Let s: [n]->{−1, 1}. For a new entry update (i, x_(i)), the hash table is updated as H_(x)[j]+=s(i)x_(i) where j=h(i) for a suitably defined hash function h: [n]->[k]. See FIG. 2 for a simple example with n=15 and k=9. A counter norm is maintained and updated as norm+=x_(i)*x_(i). Clearly, after processing all x_(i) it holds ∥x∥=√{square root over (norm)}.

The inner product of two vectors is estimated as Z=Σ_(j=1) ^(k)H_(x)[j]·H_(y)[j]. It can be shown that E[Z]=xy, i.e., an unbiased estimator of xy is obtained. For a suitable choice of the hash function h and large enough k, it is possible to bound the variance and obtain a precise estimation of xy. Intuitively, the larger hash table used, the better the estimates which were obtained.

Therefore, an estimate of cosine similarity between vectors x, y is provided. The sketch of vector x can be used in order to estimate the inner product with all other vectors in the database.

For Pearson correlation, the approach for cosine similarity estimation is extended as follows. Ideally, if the value x=(Σ_(l=1) ^(n)x_(l))/n is known in advance, it would be possible to simply apply the already-described algorithm. Instead, additionally a variable that computes=Σ_(i=1) ^(n)x_(i)/n is maintained. Also, for each cell H_(x)[j], the total contribution is computed from the function s, i.e., signs_l=Σ_(i=1) ^(n)l(h(t)=f))s(t), where l is an indicator variable that evaluates which of x's indices are hashed to H_(x)[j]. After processing the stream, updates are made for each Hx[j]+=(−signs_j)*avg. One can formally prove that this yields an identical result if the vector (x1−{tilde over (x)}, x2−{tilde over (x)}, . . . , xn−{tilde over (x)}) is sketched. Since Σ_(i=1) ^(n)(x_(i)−{tilde over (x)})²=Σ_(i=1) ^(n)x_(i) ²−2{tilde over (x)}Σ_(i=1) ^(n)x_(i)+nx², it is possible to obtain an approximation of Pearson correlation in the very same way as for cosine similarity.

As an example of one concrete application of one embodiment of the method, consider the problem of mining similar features that describe users and advertisements in a large scale stream. In this setting, users and advertisements are described by profiles. For example, user profiles include information like age, gender, location, browsing history etc. Ads are described by features like language, keywords, text analysis of the landing page. The goal is to detect similarities between features like ‘male’ and ‘cars’ that say that male users are more likely to be interested in ads about cars.

In state-of-the-art recommender systems, an item i, e.g., a book, movie, news article, is recommended to a user u if another user v has rated positively item i and u and v have shown similar preferences in the past. Here, similar preferences are defined by the ratings users give to items. For example, if two users have highly rated the same set of books, then their cosine and Pearson similarity will be close to 1. In large-scale recommender systems, such as those used by online shops or video systems, ratings are produced in a streaming fashion without any particular order, for example users sporadically rating the videos they watch or the objects they buy. Furthermore, in typically large-scale real world deployments, it is infeasible to store and process information for all ratings of users. Therefore, one is interested in storing only a sketch of the ratings for each user, and applying the methods according to the embodiments detailed herein to evaluate the similarity of the user to others. Unlike the methods presented herein, current state-of-the-art work achieves sketching only for Jaccard similarity and only considers which items users have rated, not how they were rated.

In genetic data mining, one is interested in detecting pairs of defect SNPs (Single Nucleotide Polymorphism) that are positively or negatively correlated with a certain disease, e.g. diabetes type-2 (c.f., Panagiotis Achlioptas, Bernhard Schölkopf, Karsten M. Borgwardt: Two-Locus Association Mapping in Subquadratic Time KDD (2011), pp. 726-734). The input consists of cases and controls, i.e., people who have the disease and people who don't. Naïve approaches require the generation of all pairs of SNPs, which is intractable as there are millions of different SNPs. Therefore, embodiments of the streaming approach presented herein can be advantageously applied to evaluate the correlation between SNPs and diseases.

FIG. 3 schematically shows an exemplary system according to an embodiment of the invention. The system can be made up of a computer or computational processing unit, a server or a network of computers and/or servers, which apply the sketching algorithm to preferably streaming data from a data source 310, which is, for example, stored on or available via a network.

According to an embodiment, the data mining function with sketch generation is implemented via a method. The method includes receiving, by a data source 310, various data, such as in the form of vectors (X, Y, Z, . . . , U). The sketch feature generator 320 performs the sketching as illustrated in the embodiments above, where the output sketch vectors have lower number of dimensions than the number of dimensions in corresponding input vector of the data source 310. The similarity comparator 330 performs similarity comparison and/or matching on the sketched features. The decision loop 340 generates results of similarities based on the similarity comparison and/or matching, continuously and/or as data becomes available.

According to an embodiment, a system 300 includes a data source 310, a sketch feature generator 320, a similarity comparator 330, and a decision loop 340. The data source 310 is configured to receive various data, such as in the form of vectors (X, Y, Z, . . . , U). The sketch feature generator 320 is configured to perform the sketching as illustrated in the embodiments above, where the output sketch vectors have lower number of dimensions than the number of dimensions in corresponding input vector of the data source 310. The similarity comparator 330 is configured to perform similarity comparison and/or matching on the sketched features. The decision loop 340 is configured to generate results of similarities based on the similarity comparison and/or matching, continuously and/or as data becomes available.

According to an embodiment, the data source 310 may be implemented via a database stored on a server, or a real time data collection device. The sketch feature generator 320, the similarity comparator 330, and the decision loop 340 may be each implemented via a computer or computational processing unit executing software stored on non-transitory computer readable medium, or via a firmware or a hardware circuitry configured to perform the algorithm functions as described herein. Additionally, the data source 310, the sketch feature generator 320, the similarity comparator 330, and the decision loop 340 may be implemented together as a single unit or a single device, integrated on a single semiconductor die or a single chip with multiple semiconductor dies.

According to an embodiment, the sketch feature generator 320 is configured to convert the plurality of input vectors into a corresponding plurality of normal vectors.

According to an embodiment, the corresponding plurality of normal vectors include a plurality of 2-norm vectors.

According to an embodiment, the data source 310 is configured to receive the plurality of input vectors as a stream of the input vectors in real time.

According to an embodiment, the sketch feature generator 320 converts the stream of the input vectors into the corresponding plurality of sketch feature vectors in an order corresponding to an order of the stream of the input vectors.

According to an embodiment, the system 300 further includes a memory configured to store the corresponding plurality of sketch feature vectors that are converted by the sketch feature generator 320 from the plurality of input vectors.

According to an embodiment, the memory is configured to store a corresponding plurality of normal vectors that are converted by the sketch feature generator 320 from the plurality of input vectors.

Similarity matching is performed on the sketch features and a decision loop is performed to evaluate similarities and provide a decision based on the similarities and the application. The application input or data depends on the application. Applications are also differentiated by the decision loop. For example, a recommender system may use as input product rating from users, and evaluate the similarity between users purchases in order to recommend new products to users.

Embodiments of the present invention advantageously provide for the following:

1) A novel sketching technique for summarizing vectors that allows the efficient estimation of cosine similarity and Pearson correlation between vectors. 2) Handling of massive data streams in real time. 3) Possible use cases are finding users with similar preferences for building large scale recommender systems and analyzing user-advertisement interaction in a streaming setting.

In an embodiment, the method comprises:

1) Compactly representing objects as feature vectors; 2) Collecting the feature vectors; 3) Creating feature sketches to summarize the stream; and 4) Evaluating the similarity between feature vectors.

Examples of concrete, specific and particularized applications include:

1) Recommender systems; 2) Genetic data mining; and 3) User-advertisement matching in a streaming setting.

For example, an embodiment of the present invention can work in the sales prediction setting. The product HML by NEC CORP. automatically extracts various factors affecting sales of items, such as the days of the, weather, temperature, popularity trend, etc. in order to predict sales and optimize ordering. This and similar information can then be used to evaluate similarities, for example among product types, to provide a more robust system and allow for further decisions, predictions and recommendations than before.

For the applications listed above, embodiments of the present invention significantly outperform state-of-the-art systems, which either only apply to binary data and/or have larger processing time per element. The present solution is especially advantageous if the absolute values of the features adhere to a skewed distribution as opposed to a normal distribution or, in other words, where the vector elements do not have the same expected value.

While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. It will be understood that changes and modifications may be made by those of ordinary skill within the scope of the following claims. In particular, the present invention covers further embodiments with any combination of features from different embodiments described above and below. Additionally, statements made herein characterizing the invention refer to an embodiment of the invention and not necessarily all embodiments.

The terms used in the claims should be construed to have the broadest reasonable interpretation consistent with the foregoing description. For example, the use of the article “a” or “the” in introducing an element should not be interpreted as being exclusive of a plurality of elements. Likewise, the recitation of “or” should be interpreted as being inclusive, such that the recitation of “A or B” is not exclusive of “A and B,” unless it is clear from the context or the foregoing description that only one of A and B is intended. Further, the recitation of “at least one of A, B and C” should be interpreted as one or more of a group of elements consisting of A, B and C, and should not be interpreted as requiring at least one of each of the listed elements A, B and C, regardless of whether A, B and C are related as categories or otherwise. Moreover, the recitation of “A, B and/or C” or “at least one of A, B or C” should be interpreted as including any singular entity from the listed elements, e.g., A, any subset from the listed elements, e.g., A and B, or the entire list of elements A, B and C. 

1. A method for data mining, comprising: receiving, by a data source, a plurality of input vectors; converting, by a sketch feature generator, the plurality of input vectors into a corresponding plurality of sketch feature vectors, wherein each of the plurality of sketch feature vectors has a number of output dimensions that is less than a number of dimensions of a corresponding one of the input vectors; comparing, by a similarity comparator, each of the plurality of sketch feature vectors against a set of parameters; and generating, by a decision loop, results of similarities based upon a comparison of each of the plurality of sketch feature vectors against the set of parameters.
 2. The method according to claim 1, wherein the converting by the sketch feature generator further converts the plurality of input vectors into a corresponding plurality of normal vectors.
 3. The method according to claim 2, wherein the corresponding plurality of normal vectors include a plurality of 2-norm vectors.
 4. The method according to claim 1, wherein the plurality of input vectors is received by the data source as a stream of the input vectors in real time.
 5. The method according to claim 4, wherein the sketch feature generator converts the stream of the input vectors into the corresponding plurality of sketch feature vectors in an order corresponding to an order of the stream of the input vectors.
 6. The method according to claim 5, further comprising storing, by a memory, the corresponding plurality of sketch feature vectors that are converted by the sketch feature generator from the plurality of input vectors.
 7. The method according to claim 6, wherein the memory further stores a corresponding plurality of normal vectors that are converted by the sketch feature generator from the plurality of input vectors.
 8. The method according to claim 7, wherein the corresponding plurality of normal vectors include a plurality of 2-norm vectors.
 9. A system for data mining, comprising: a data source configured to receive a plurality of input vectors; a sketch feature generator configured to convert the plurality of input vectors into a corresponding plurality of sketch feature vectors, wherein each of the plurality of sketch feature vectors has a number of output dimensions that is less than a number of dimensions of a corresponding one of the input vectors; a similarity comparator configured to compare each of the plurality of sketch feature vectors against a set of parameters; and a decision loop configured to generate results of similarities based upon a comparison of each of the plurality of sketch feature vectors against the set of parameters.
 10. The system according to claim 9, wherein the sketch feature generator is configured to convert the plurality of input vectors into a corresponding plurality of normal vectors.
 11. The system according to claim 10, wherein the corresponding plurality of normal vectors include a plurality of 2-norm vectors.
 12. The system according to claim 9, wherein the data source is configured to receive the plurality of input vectors as a stream of the input vectors in real time.
 13. The system according to claim 12, wherein the sketch feature generator converts the stream of the input vectors into the corresponding plurality of sketch feature vectors in an order corresponding to an order of the stream of the input vectors.
 14. The system according to claim 13, further comprising a memory configured to store the corresponding plurality of sketch feature vectors that are converted by the sketch feature generator from the plurality of input vectors.
 15. The system according to claim 14, wherein the memory is configured to store a corresponding plurality of normal vectors that are converted by the sketch feature generator from the plurality of input vectors. 